package cn.muqingfeng.util;

import android.app.ActivityManager;
import android.content.Context;
import android.text.TextUtils;

import com.android.volley.RequestQueue;
import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.android.volley.toolbox.Volley;

public class BitmapBinder {

	private static final Object mLock = new Object();
	private static ImageLoader sImageLoader;

	public static final ImageLoader getImageLoader(Context context) {
		if (sImageLoader != null) {
			return sImageLoader;
		}
		synchronized (mLock) {
			if (sImageLoader == null) {
				RequestQueue imageQueue = Volley.newImageRequestQueue(context, ".newimages", 20 * 1024 * 1024);
				// 30M缓存大小
				int memClass = ((ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE)).getMemoryClass();
				MemoryCache imageCache = new MemoryCache(memClass * 1024 * 1024 / 8);
				// MemoryCache imageCache = new MemoryCache( 1024 * 1024 * 3);
				sImageLoader = new ImageLoader(imageQueue, imageCache);
				sImageLoader.setBatchedResponseDelay(50);
			}
		}
		return sImageLoader;
	}

	public static void bindNetImage(Context context, final NetworkImageView imageView, final String imageUrl, int defaultResId) {
		imageView.setDefaultImageResId(defaultResId);
		imageView.setErrorImageResId(defaultResId);
		if (TextUtils.isEmpty(imageUrl)) {
			imageView.setImageResource(defaultResId);
		} else {
			ImageLoader imageLoader = getImageLoader(context);
			imageView.setImageUrl(imageUrl, imageLoader);
		}
	}

	public static void clearCache(Context context) {
		ImageLoader imageLoader = getImageLoader(context);
		imageLoader.clearCache();
	}
}
